const { exec } = require('child_process');
const fs = require('fs');
const path = require('path');
const os = require('os');

// 创建测试文件
function createTestFile() {
  const tempDir = os.tmpdir();
  const testFileName = `test-file-${Date.now()}.txt`;
  const testFilePath = path.join(tempDir, testFileName);
  
  const testContent = `这是一个测试文件
创建时间: ${new Date().toLocaleString()}
内容: 通过协议调起Electron应用的测试数据
随机数: ${Math.random()}`;
  
  fs.writeFileSync(testFilePath, testContent, 'utf-8');
  console.log('测试文件已创建:', testFilePath);
  console.log('文件内容:', testContent);
  
  return testFilePath;
}

// 构建协议URL
function buildProtocolUrl(filePath) {
  // 对文件路径进行URL编码
  const encodedPath = encodeURIComponent(filePath);
  return `modelSearch://?file=${encodedPath}`;
}

// 测试协议调用
function testProtocolCall() {
  const testFilePath = createTestFile();
  const protocolUrl = buildProtocolUrl(testFilePath);
  
  console.log('协议URL:', protocolUrl);
  console.log('正在调用协议...');
  
  // 在Windows上使用start命令调用协议
  const command = `start "${protocolUrl}"`;
  
  exec(command, (error, stdout, stderr) => {
    if (error) {
      console.error('调用协议时出错:', error);
      return;
    }
    console.log('协议调用成功');
    console.log('请检查Electron应用是否正常启动并显示文件内容');
  });
}

// 运行测试
testProtocolCall(); 